package br.com.vilababy.sigvb.repository;

import java.util.List;

import br.com.vilababy.sigvb.dao.AutorizadoDAO;
import br.com.vilababy.sigvb.dao.SIGVBDAOFactory;
import br.com.vilababy.sigvb.modelo.Aluno;
import br.com.vilababy.sigvb.modelo.Autorizado;

public class AutorizadoRepository extends AbstractSIGVBRepository<Autorizado> {
	
	/**
	 * @author Diego Patrick da Silva Santos
	 */
	public AutorizadoRepository() {
		super(SIGVBDAOFactory.getInstancia().getAutorizadoDAO());
	}

	@Override
	public Autorizado inserir(Autorizado autorizado) {
		autorizado.setId(getDao().cadastrar(autorizado).getId());
		return autorizado;
	}

	@Override
	public boolean atualizar(Autorizado modelo) throws Exception {
		// TODO Auto-generated method stub
		return false;
	}

	@Override
	public boolean remover(Autorizado modelo) {
		// TODO Auto-generated method stub
		return false;
	}

	@Override
	public Autorizado consultar(Autorizado modelo) {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public Autorizado get(Long id) {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public List<Autorizado> listar(Autorizado modelo, int primeiroRegistro,
			int totalRegistro) {
		// TODO Auto-generated method stub
		return null;
	}
	
	public int totalAutorizadosFiltrados() {
		return ((AutorizadoDAO) getDao()).getQuantidadeFiltrados();
	}

	public boolean verificarExistenciaPai(Aluno aluno) {
		Autorizado pai = ((AutorizadoDAO) getDao()).consultarPai(aluno);
		
		if (pai!= null && pai.getId() != null)
			return Boolean.TRUE;
		return Boolean.FALSE;
			
	}
	
	public boolean verificarExistenciaMae(Aluno aluno) {
		Autorizado mae = ((AutorizadoDAO) getDao()).consultarMae(aluno);
		
		if (mae!= null && mae.getId() != null) 
			return Boolean.TRUE;
		return Boolean.FALSE;
	}
	
	public List<Autorizado> listarParcial(int primeiroRegistro, int totalRegistros) {
		return ((AutorizadoDAO) getDao()).listarPaginacao(primeiroRegistro, totalRegistros);
	}
}
